package com.vf.user.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.vf.common.annotation.Excel;
import com.vf.common.core.domain.BaseEntity;

/**
 * 用户对象 users
 * 
 * @author LBS
 * @date 2025-06-04
 */
public class Users extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** ID */
    private Long id;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickname;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 加密密码 */
    @Excel(name = "加密密码")
    private String passwordHash;

    /** 职业 */
    @Excel(name = "职业")
    private String profession;

    /** 职业阶段 */
    @Excel(name = "职业阶段")
    private String careerStage;

    /** 所在城市 */
    @Excel(name = "所在城市")
    private String city;

    /** 自我介绍 */
    @Excel(name = "自我介绍")
    private String about;

    /** 期望收获 */
    @Excel(name = "期望收获")
    private String expectations;

    /** 对伙伴的期待 */
    @Excel(name = "对伙伴的期待")
    private String partnerExpectations;

    /** 能提供的帮助 */
    @Excel(name = "能提供的帮助")
    private String offerings;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 信用评分 */
    @Excel(name = "信用评分")
    private BigDecimal creditScore;

    /** 爽约次数 */
    @Excel(name = "爽约次数")
    private Long noShowCount;

    /** mbit职业测试 */
    @Excel(name = "mbit职业测试")
    private Long mbti;

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setNickname(String nickname) 
    {
        this.nickname = nickname;
    }

    public String getNickname() 
    {
        return nickname;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setPasswordHash(String passwordHash) 
    {
        this.passwordHash = passwordHash;
    }

    public String getPasswordHash() 
    {
        return passwordHash;
    }
    public void setProfession(String profession) 
    {
        this.profession = profession;
    }

    public String getProfession() 
    {
        return profession;
    }
    public void setCareerStage(String careerStage) 
    {
        this.careerStage = careerStage;
    }

    public String getCareerStage() 
    {
        return careerStage;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setAbout(String about) 
    {
        this.about = about;
    }

    public String getAbout() 
    {
        return about;
    }
    public void setExpectations(String expectations) 
    {
        this.expectations = expectations;
    }

    public String getExpectations() 
    {
        return expectations;
    }
    public void setPartnerExpectations(String partnerExpectations) 
    {
        this.partnerExpectations = partnerExpectations;
    }

    public String getPartnerExpectations() 
    {
        return partnerExpectations;
    }
    public void setOfferings(String offerings) 
    {
        this.offerings = offerings;
    }

    public String getOfferings() 
    {
        return offerings;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }
    public void setCreditScore(BigDecimal creditScore) 
    {
        this.creditScore = creditScore;
    }

    public BigDecimal getCreditScore() 
    {
        return creditScore;
    }
    public void setNoShowCount(Long noShowCount) 
    {
        this.noShowCount = noShowCount;
    }

    public Long getNoShowCount() 
    {
        return noShowCount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("id", getId())
            .append("nickname", getNickname())
            .append("email", getEmail())
            .append("passwordHash", getPasswordHash())
            .append("profession", getProfession())
            .append("careerStage", getCareerStage())
            .append("city", getCity())
            .append("about", getAbout())
            .append("expectations", getExpectations())
            .append("partnerExpectations", getPartnerExpectations())
            .append("offerings", getOfferings())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("creditScore", getCreditScore())
            .append("noShowCount", getNoShowCount())
            .toString();
    }
}
